package com.ys.load.controller;

import com.wechat.pay.java.core.Config;
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
import com.wechat.pay.java.service.payments.nativepay.NativePayService;
import com.wechat.pay.java.service.payments.nativepay.model.Amount;
import com.wechat.pay.java.service.payments.nativepay.model.PrepayRequest;
import com.wechat.pay.java.service.payments.nativepay.model.PrepayResponse;

/** Native 支付下单为例-------------------查看接口文档 */
public class QuickStart {
    /** 商户号 */
    public static String merchantId = "1698102898";
    /** 商户API私钥路径 */
    public static String privateKeyPath = "D:\\wechatpay\\apiclient_key.pem";
    /** 商户证书序列号 */
    //public static String merchantSerialNumber = "74F78A541A4BEC06124ED6C408CB3C92FF3C2C26";//登录微信支付 ---API安全--验证商户身份---商户API证书---点击管理证书
    public static String merchantSerialNumber = "33A39F76EDECF75CBD3D416B5BEADC52BE108F41";
    /** 商户APIV3密钥 */
    public static String apiV3key = "yusong7343283yusong7343283yusong";
    public static void main(String[] args) {
        // 使用自动更新平台证书的RSA配置
        // 建议将 config 作为单例或全局静态对象，避免重复的下载浪费系统资源
        Config config = new RSAAutoCertificateConfig.Builder()
                        .merchantId(merchantId)
                        .privateKeyFromPath(privateKeyPath)
                        .merchantSerialNumber(merchantSerialNumber)
                        .apiV3Key(apiV3key)
                        .build();
        // 构建service
        NativePayService service = new NativePayService.Builder().config(config).build();
        // request.setXxx(val)设置所需参数，具体参数可见Request定义
        PrepayRequest request = new PrepayRequest();
        Amount amount = new Amount();
        amount.setTotal(100);//单位(分)
        request.setAmount(amount);
        request.setAppid("wx907406ffb4270bc5");//公众号--小程序
        request.setMchid("1698102898");//直连商户号
        request.setDescription("测试商品标题");//商品描述
        request.setNotifyUrl("https://www.baidu.com");//通知地址 说明：有效性：1. HTTPS；2. 不允许携带查询串
        request.setOutTradeNo("out_trade_no_001");//商户订单号 说明：商户订单号
        
        //案例
//        request.setAppid("wxa9d9651ae******");//公众号
//        request.setMchid("190000****");//直连商户号
//        request.setDescription("测试商品标题");//商品描述
//        request.setNotifyUrl("https://notify_url");//通知地址 说明：有效性：1. HTTPS；2. 不允许携带查询串
//        request.setOutTradeNo("out_trade_no_001");//商户订单号 说明：商户订单号
        // 调用下单方法，得到应答
        PrepayResponse response = service.prepay(request);
        // 使用微信扫描 code_url 对应的二维码，即可体验Native支付
        System.out.println("-----------------------------------------------------------------------------------------");
        System.out.println(response.getCodeUrl());
    }
}
